#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
  int m, n;
  while (cin >> m >> n)
  {
    vector<int> task(n);
    for (int i = 0; i < n; i++)
      cin >> task[i];
    // 首先对任务处理时间排序
    sort(task.begin(), task.end());
    vector<int> cpu_queen(m);
    for (int i = 0; i < n; i++)
    {
      cpu_queen[0] += task[i];
      // 对任务处理队列排序，其实每次只需要调整第一个值，插入到后面，可以手写
      sort(cpu_queen.begin(), cpu_queen.end());
    }
    cout << cpu_queen[m - 1] << endl; // 因为经过了排序，所以是最长耗时的机器为，处理完所有任务所需的时间
  }
}
